package com.bf.electroplating.pojo.vo.exhaustGasWarning;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * 废气处理设施监控预警统计VO
 */
@Data
@Schema(description = "废气处理设施监控预警统计VO")
public class ExhaustGasWarningStatsVO {

    @Schema(description = "总预警数")
    private Long totalCount;

    @Schema(description = "未处理预警数")
    private Long unhandledCount;

    @Schema(description = "已处理预警数")
    private Long handledCount;

    @Schema(description = "一级预警数")
    private Long level1Count;

    @Schema(description = "二级预警数")
    private Long level2Count;

    @Schema(description = "三级预警数")
    private Long level3Count;

    @Schema(description = "今日新增预警数")
    private Long todayCount;

    @Schema(description = "本周新增预警数")
    private Long weekCount;

    @Schema(description = "本月新增预警数")
    private Long monthCount;

    @Schema(description = "按企业统计")
    private List<CompanyWarningStatsVO> companyStats;

    @Schema(description = "按预警级别统计")
    private List<LevelWarningStatsVO> levelStats;

    @Schema(description = "按处置状态统计")
    private List<StatusWarningStatsVO> statusStats;

    @Data
    @Schema(description = "企业预警统计")
    public static class CompanyWarningStatsVO {
        @Schema(description = "企业名称")
        private String companyName;

        @Schema(description = "预警数量")
        private Long warningCount;

        @Schema(description = "未处理数量")
        private Long unhandledCount;
    }

    @Data
    @Schema(description = "预警级别统计")
    public static class LevelWarningStatsVO {
        @Schema(description = "预警级别")
        private String warningLevel;

        @Schema(description = "预警级别名称")
        private String warningLevelName;

        @Schema(description = "预警数量")
        private Long warningCount;
    }

    @Data
    @Schema(description = "处置状态统计")
    public static class StatusWarningStatsVO {
        @Schema(description = "处置状态")
        private String handleStatus;

        @Schema(description = "处置状态名称")
        private String handleStatusName;

        @Schema(description = "预警数量")
        private Long warningCount;
    }
}
